//globals
var selection_container;

function initDialog()
{
	//nur einmal erstellen
	if(typeof initDialog.already_opened != 'undefined') return;
	initDialog.already_opened = true;
	
	console.log("Init Dialog wird ausgefuehrt");
	
	var scriptTag = document.createElement("script");
	scriptTag.setAttribute("type","text/javascript");
	
	scriptTag.innerHTML = "function viewVorschau(){\
	if(typeof viewVorschau.opened=='undefined') viewVorschau.opened=false;\
	if(viewVorschau.opened==true)document.getElementById('vorschau').style.display='none';\
	else document.getElementById('vorschau').style.display='block';\
	viewVorschau.opened = !viewVorschau.opened;}";
	
	document.head.appendChild(scriptTag);
	
	/*
	divTag.appendChild(vorschau);
	divTag.appendChild(eingabefeld1);
			
	document.body.appendChild(divTag);
	*/
	
	var divTag = document.createElement("div");
	divTag.setAttribute("id","form_container");
	document.body.appendChild(divTag);
	
	$("#form_container").load(chrome.extension.getURL("dialog.html"),openDialog);
	
}

function openDialog(){
	console.log("OpenDialog wird ausgefuehrt");

	//changed events fuer dropdowns
	$('#regal').change(regaleChanged);
	$('#buch').change(buecherChanged);
	
	document.getElementById("newRegal").addEventListener("click",function(){
		chrome.extension.sendRequest({befehl:4,neu:1,regalname:prompt('Name:','')});
		chrome.extension.sendRequest({befehl:1}, addRegale);
	});
	
	document.getElementById("newBuch").addEventListener("click",function(){
		chrome.extension.sendRequest({befehl:4,neu:2,buchname:prompt('Name:',''),regal:$("#regal").val()});
		chrome.extension.sendRequest({befehl:2}, addBuecher);
	});
	
	document.getElementById("newKapitel").addEventListener("click",function(){
		chrome.extension.sendRequest({befehl:4,neu:3,kapitelname:prompt('Name:',''),regal:$("#regal").val(),buch:$("#buch").val()});
		chrome.extension.sendRequest({befehl:3}, addKapitel);
	});
	
	//Vorschau kopieren
	var selection = window.getSelection().getRangeAt(0).cloneContents();
	selection_container = document.createElement("div");
	selection_container.appendChild(selection);
	selection_container.innerHTML = convertLinks(selection_container.innerHTML,document.location.href);
	document.getElementById("vorschau").appendChild(selection);
	
	//vorschau resizable machen
	$(function() {
		$( "#vorschau" ).resizable();
	});
	
	//+++++++Tabellenzeug+++++++++
	chrome.extension.sendRequest({befehl:1}, addRegale);
	//-------Tabellenzeug---------
	
	//Container oeffnen
	$('#form_container').dialog({
		width: 'auto',
		buttons: {
			"Ok": function() {
				chrome.extension.sendRequest({befehl:5,
				titel:$('#titel').val(),
				tags:$('#tags').val(),
				regal:$('#regal').val(),
				buch:$('#buch').val(),
				kapitel:$('#kapitel').val(),
				kommentar:$('#kommentar').val(),
				quelle:document.location.href,
				inhalt:selection_container.innerHTML
				}, function(){});
				$(this).dialog("close");
			}, 
			"Cancel": function() { 
				$(this).dialog("close"); 
			} 
		}
	});
}

function regaleChanged(event)
{
	console.log("Die Regale haben sich veraendert");
	neues_regal = $(event.target).val();
	chrome.extension.sendRequest({befehl:2,regal:neues_regal}, addBuecher);
}

function buecherChanged(event)
{
	console.log("Die Buecher haben sich veraendert");
	neues_buch = $(event.target).val();
	chrome.extension.sendRequest({befehl:3,buch:neues_buch}, addKapitel);
}

function addRegale(response){
	console.log("Regale werden hinzugefuegt");
	document.getElementById('regal').innerHTML="";
	var len = response.regale.length, i;
	for(i=0;i<len;++i)
	{
		var regalTag = document.createElement("option");
		regalTag.innerHTML = response.regale[i];
		regalTag.setAttribute('value',regalTag.innerHTML);
		document.getElementById('regal').appendChild(regalTag);
	}
	if(len>0) chrome.extension.sendRequest({befehl:2,regal:response.regale[0]}, addBuecher);
}

function addBuecher(response){
	console.log("Buecher werden hinzugefuegt");
	document.getElementById('buch').innerHTML="";
	var len = response.buecher.length, i;
	for(i=0;i<len;++i)
	{
		var buchTag = document.createElement("option");
		buchTag.innerHTML = response.buecher[i];
		buchTag.setAttribute('value',buchTag.innerHTML);
		document.getElementById('buch').appendChild(buchTag);
	}	
	if(len>0) chrome.extension.sendRequest({befehl:3,buch:response.buecher[0]}, addKapitel);
}

function addKapitel(response){
	console.log("Kapitel werden hinzugefuegt");
	document.getElementById('kapitel').innerHTML="";
	var len = response.kapitel.length, i;
	for(i=0;i<len;++i)
	{
		var kapitelTag = document.createElement("option");
		kapitelTag.innerHTML = response.kapitel[i];
		kapitelTag.setAttribute('value',kapitelTag.innerHTML);
		document.getElementById('kapitel').appendChild(kapitelTag);
	}	
}

function viewPreview(){
	alert("check");
	document.getElementById('vorschau').style.display='block';
}

function convertLinks(data,host)
{
	host = host.substr(0, host.length-1);
	
	var re_src = new RegExp('src="(/[^"]+)"',"g"); //Link faengt mit / an
	data = data.replace(re_src,'src="'+host+'$1"');	
	var re_href = new RegExp('href="(/[^"]+)"',"g");
	data = data.replace(re_href,'href="'+host+'$1"');
	
	var re_src_2 = new RegExp('src="((?!http://)(?!www.)[^"]+)"',"g"); //alle links ohne /
	data = data.replace(re_src_2,'src="'+host+'/$1"');
	var re_href_2 = new RegExp('href="((?!http://)(?!www.)[^"]+)"',"g");
	data = data.replace(re_href_2,'href="'+host+'/$1"');
	
	return data;
}

initDialog();